import java.util.Scanner;
import java.util.TreeSet;

public class Pdd3 {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int N = scanner.nextInt(); // a 的数量不能超过 N
        int M = scanner.nextInt(); // b 的数量不能超过 M
        long K = scanner.nextLong(); // 字典序第 K 小的单词

        String result = findKthWord(N, M, K);
        System.out.println(result);
    }

    // 生成所有满足条件的单词并按字典序排序，然后找到第 K 小的单词
    private static String findKthWord(int N, int M, long K) {
        TreeSet<String> words = new TreeSet<>();
        generateWords(N, M, "", words);

        int index = 1;
        for (String word : words) {
            if (index == K) {
                return word;
            }
            index++;
        }

        // 如果未找到第 K 小的单词，返回空字符串
        return "";
    }

    // 递归生成所有满足条件的单词
    private static void generateWords(int N, int M, String current, TreeSet<String> words) {
        if (current.length() == N + M) {
            words.add(current);
            return;
        }
        if (current.length() < N) {
            generateWords(N, M, current + "a", words);
        }
        if (current.length() < M) {
            generateWords(N, M, current + "b", words);
        }
    }
}
